using System;
using System.Collections.Generic;
using System.Text;
namespace MyDMS.BusinessLayer
{
	public class UserFolder: BusinessObjectBase
	{

		#region InnerClass
		public enum UserFolderFields
		{
			Folder_Code,
			Folder_Name,
			Folder_Desc,
			Is_Default,
			User_Code,
			Is_Active,
			Creation_Date,
			Updation_Date
		}
		#endregion

		#region Data Members

			int _folder_Code;
			string _folder_Name;
			string _folder_Desc;
			bool _is_Default;
			int? _user_Code;
			bool? _is_Active;
			DateTime? _creation_Date;
			DateTime? _updation_Date;

		#endregion

		#region Properties

		public int  Folder_Code
		{
			 get { return _folder_Code; }
			 set
			 {
				 if (_folder_Code != value)
				 {
					_folder_Code = value;
					 PropertyHasChanged("Folder_Code");
				 }
			 }
		}

		public string  Folder_Name
		{
			 get { return _folder_Name; }
			 set
			 {
				 if (_folder_Name != value)
				 {
					_folder_Name = value;
					 PropertyHasChanged("Folder_Name");
				 }
			 }
		}

		public string  Folder_Desc
		{
			 get { return _folder_Desc; }
			 set
			 {
				 if (_folder_Desc != value)
				 {
					_folder_Desc = value;
					 PropertyHasChanged("Folder_Desc");
				 }
			 }
		}

		public bool  Is_Default
		{
			 get { return _is_Default; }
			 set
			 {
				 if (_is_Default != value)
				 {
					_is_Default = value;
					 PropertyHasChanged("Is_Default");
				 }
			 }
		}

		public int?  User_Code
		{
			 get { return _user_Code; }
			 set
			 {
				 if (_user_Code != value)
				 {
					_user_Code = value;
					 PropertyHasChanged("User_Code");
				 }
			 }
		}

		public bool?  Is_Active
		{
			 get { return _is_Active; }
			 set
			 {
				 if (_is_Active != value)
				 {
					_is_Active = value;
					 PropertyHasChanged("Is_Active");
				 }
			 }
		}

		public DateTime?  Creation_Date
		{
			 get { return _creation_Date; }
			 set
			 {
				 if (_creation_Date != value)
				 {
					_creation_Date = value;
					 PropertyHasChanged("Creation_Date");
				 }
			 }
		}

		public DateTime?  Updation_Date
		{
			 get { return _updation_Date; }
			 set
			 {
				 if (_updation_Date != value)
				 {
					_updation_Date = value;
					 PropertyHasChanged("Updation_Date");
				 }
			 }
		}


		#endregion

		#region Validation

		internal override void AddValidationRules()
		{
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Folder_Code", "Folder_Code"));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Folder_Name", "Folder_Name"));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Folder_Name", "Folder_Name",50));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Folder_Desc", "Folder_Desc",200));
			ValidationRules.AddRules(new Validation.ValidateRuleNotNull("Is_Default", "Is_Default"));
		}

		#endregion

	}
}
